Field of the Disclosure
This matter deals generally with devices and methods using electronic devices, and more particular to devices and method using electronic devices with watchdog capabilities.
Related Art
Generally, data processing systems operate to execute program instructions to perform various data processing operations. As such, a particular core of a data processing system can be assigned to execute a program that processes a particular set of data. This combination of a program and corresponding data represents a specific task that is to be executed by the data processing system, and in particular, once assigned, this task represents a specific task of that core. Each core of a data processing system can be assigned multiple tasks.
A task is divided into one or more portions that are referred to as jobs. When a task has multiple jobs, each job represents an operation of the task that is performed without being interrupted by a task switch. A job can be executed by a core, a non-core resource, or a combination thereof. For example, a core executing a task program can transfer control of a particular job for the task to a hardware accelerator. Note that when control of a job is transferred to a non-core resource, the core that was executing the task program may no longer need to actively process the job. Thus, the core can be released from execution of the current task's job, and can be used to execute a job from another task. When the non-core resource is finished executing its assigned job, a next job of the original task can be scheduled for execution.
A core can implement a task switch, e.g., switch between tasks, on job boundaries, that is, after completion of one job and before starting a next job. For example, a task scheduler can determine the next job to assign to a core once it completes a current job. Task switching provides a benefit of enabling a core to execute multiple tasks in a time-sliced manner.
When switching between tasks, a core typically stores context information (e.g., state information) of its current task before exiting the current task. The process of saving a particular core's context information for an executing task, and loading stored context information associated with a next task to be processed by the core, is generally referred to as context or task switching.
The ability to determine if a particular task is operating properly can be monitored using a watchdog timer that is serviced by the particular task's software. For example, the particular task can be required to repeatedly set a counter to a particular value, before the counter reaches an error count. Otherwise, upon obtaining the error count, an error, referred to as a watchdog error, occurs.
The use of the same reference symbols in different drawings indicates similar or identical items.